const { body, param } = require('express-validator');

exports.registerValidator = [
    body('username')
        .notEmpty().withMessage('用户名不能为空')
        .isLength({ min: 3, max: 20 }).withMessage('用户名长度必须在3-20个字符之间'),
    body('password')
        .notEmpty().withMessage('密码不能为空')
        .isLength({ min: 6 }).withMessage('密码长度不能少于6位'),
    body('email')
        .notEmpty().withMessage('邮箱不能为空')
        .isEmail().withMessage('请输入有效的邮箱地址'),
    body('phone')
        .notEmpty().withMessage('手机号不能为空')
        .matches(/^[1][3-9][0-9]{9}$/).withMessage('请输入有效的手机号')
];

exports.loginValidator = [
    body('username')
        .notEmpty().withMessage('用户名不能为空'),
    body('password')
        .notEmpty().withMessage('密码不能为空')
];


exports.findPasswordValidator = [
    body('username')
        .notEmpty().withMessage('用户名不能为空'),
    body('email')
        .notEmpty().withMessage('邮箱不能为空')
        .isEmail().withMessage('请输入有效的邮箱地址'),
    body('phone')
        .notEmpty().withMessage('手机号不能为空')
        .matches(/^[1][3-9][0-9]{9}$/).withMessage('请输入有效的手机号'),
    body('newPassword')
        .notEmpty().withMessage('新密码不能为空')
        .isLength({ min: 6 }).withMessage('新密码长度不能少于6位')
];

exports.changePasswordValidator = [
    body('oldPassword')
        .notEmpty().withMessage('旧密码不能为空'),
    body('newPassword')
        .notEmpty().withMessage('新密码不能为空')
        .isLength({ min: 6 }).withMessage('新密码长度不能少于6位')
];

exports.postCommentValidator = [
    body('content')
        .notEmpty().withMessage('评论内容不能为空')
        .isLength({ min: 1, max: 255 }).withMessage('评论内容长度必须在1-255个字符之间'),
    body('movie_id')
        .notEmpty().withMessage('电影ID不能为空')
];

exports.movieOtherValidator = [
    body('movie_id')
        .notEmpty().withMessage('电影ID不能为空')
        .matches(/^([a-fA-F0-9]{24})$/).withMessage('电影ID长度必须为24位')
];

exports.sendEmailValidator = [
    body('receiver')
        .notEmpty().withMessage('收件人不能为空')
        .isEmail().withMessage('请输入有效的邮箱地址'),
    body('subject')
        .notEmpty().withMessage('主题不能为空')
        .isLength({ min: 1, max: 63 }).withMessage('主题长度必须在1-63个字符之间'),
    body('content')
        .notEmpty().withMessage('内容不能为空')
        .isLength({ min: 1, max: 1023 }).withMessage('内容长度必须在1-1023个字符之间')
];

exports.idValidatorBody = [
    body('id')
        .notEmpty().withMessage('id不能为空')
        .matches(/^([a-fA-F0-9]{24})$/).withMessage('id长度必须为24位的十六进制字符串')
];

exports.idValidatorParam = [
    param('id')
        .notEmpty().withMessage('id不能为空')
        .matches(/^([a-fA-F0-9]{24})$/).withMessage('id长度必须为24位的十六进制字符串')
];

exports.updateUserValidator = [
    body('id')
        .notEmpty().withMessage('id不能为空')
        .matches(/^([a-fA-F0-9]{24})$/).withMessage('id长度必须为24位的十六进制字符串'),
    body('permission')
        .notEmpty().withMessage('权限不能为空')
        .isBoolean().withMessage('权限格式不正确')
];

// ============================== 
